Package-level declarations

Types

Link copied to clipboard
@RequiresOptIn(message = "TrayApp is experimental and may change or be removed without notice.", level = RequiresOptIn.Level.WARNING)
@Target(allowedTargets = [AnnotationTarget.CLASS, AnnotationTarget.FUNCTION, AnnotationTarget.PROPERTY, AnnotationTarget.TYPEALIAS])
annotation class ExperimentalTrayAppApi

Marks the TrayApp API as experimental. This API is subject to change and may be modified or removed in future releases without prior notice.

Link copied to clipboard
class TrayAppState(initialWindowSize: DpSize = DpSize(300.dp, 200.dp), initiallyVisible: Boolean = false, initialDismissMode: TrayWindowDismissMode = TrayWindowDismissMode.AUTO)

State holder for TrayApp that provides programmatic control over the tray window and observability of its state changes, including window dismiss behavior.

Link copied to clipboard

Defines how the tray window should be dismissed (hidden)

Functions

Link copied to clipboard
@Composable
fun rememberTrayAppState(initialWindowSize: DpSize = DpSize(300.dp, 200.dp), initiallyVisible: Boolean = false, initialDismissMode: TrayWindowDismissMode = TrayWindowDismissMode.AUTO): TrayAppState

Creates and remembers a TrayAppState instance

Link copied to clipboard
@Composable
fun ApplicationScope.Tray(icon: Painter, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, primaryAction: () -> Unit? = null, menuContent: TrayMenuBuilder.() -> Unit? = null)
@Composable
fun ApplicationScope.Tray(iconContent: @Composable () -> Unit, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, primaryAction: () -> Unit? = null, menuContent: TrayMenuBuilder.() -> Unit? = null)
@Composable
fun ApplicationScope.Tray(icon: ImageVector, tint: Color? = null, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, primaryAction: () -> Unit? = null, menuContent: TrayMenuBuilder.() -> Unit? = null)
@Composable
fun ApplicationScope.Tray(windowsIcon: DrawableResource, macLinuxIcon: ImageVector, tint: Color? = null, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, primaryAction: () -> Unit? = null, menuContent: TrayMenuBuilder.() -> Unit? = null)

@Composable
fun ApplicationScope.Tray(iconPath: String, windowsIconPath: String = iconPath, tooltip: String, primaryAction: () -> Unit? = null, menuContent: TrayMenuBuilder.() -> Unit? = null)

Composable helpers

@Composable
fun ApplicationScope.Tray(icon: DrawableResource, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, primaryAction: () -> Unit? = null, menuContent: TrayMenuBuilder.() -> Unit? = null)

DrawableResource helpers

@Composable
fun ApplicationScope.Tray(windowsIcon: Painter, macLinuxIcon: ImageVector, tint: Color? = null, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, primaryAction: () -> Unit? = null, menuContent: TrayMenuBuilder.() -> Unit? = null)

Platform-polymorphic helper

Link copied to clipboard
@Composable
fun ApplicationScope.TrayApp(icon: Painter, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, state: TrayAppState? = null, windowSize: DpSize? = null, visibleOnStart: Boolean = false, enterTransition: EnterTransition = defaultTrayAppEnterTransition, exitTransition: ExitTransition = defaultTrayAppExitTransition, transparent: Boolean = true, windowsTitle: String = "", windowIcon: Painter? = null, undecorated: Boolean = true, resizable: Boolean = false, horizontalOffset: Int = 0, verticalOffset: Int = defaultVerticalOffset, onPreviewKeyEvent: (KeyEvent) -> Boolean = { false }, onKeyEvent: (KeyEvent) -> Boolean = { false }, menu: TrayMenuBuilder.() -> Unit? = null, content: @Composable DialogWindowScope.() -> Unit)
@Composable
fun ApplicationScope.TrayApp(iconContent: @Composable () -> Unit, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, state: TrayAppState? = null, windowSize: DpSize? = null, visibleOnStart: Boolean = false, enterTransition: EnterTransition = defaultTrayAppEnterTransition, exitTransition: ExitTransition = defaultTrayAppExitTransition, transparent: Boolean = true, windowsTitle: String = "", windowIcon: Painter? = null, undecorated: Boolean = true, resizable: Boolean = false, horizontalOffset: Int = 0, verticalOffset: Int = defaultVerticalOffset, onPreviewKeyEvent: (KeyEvent) -> Boolean = { false }, onKeyEvent: (KeyEvent) -> Boolean = { false }, menu: TrayMenuBuilder.() -> Unit? = null, content: @Composable DialogWindowScope.() -> Unit)
@Composable
fun ApplicationScope.TrayApp(icon: DrawableResource, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, state: TrayAppState? = null, windowSize: DpSize? = null, visibleOnStart: Boolean = false, enterTransition: EnterTransition = defaultTrayAppEnterTransition, exitTransition: ExitTransition = defaultTrayAppExitTransition, transparent: Boolean = true, windowsTitle: String = "", windowIcon: Painter? = null, undecorated: Boolean = true, resizable: Boolean = false, horizontalOffset: Int = 0, verticalOffset: Int = defaultVerticalOffset, onPreviewKeyEvent: (KeyEvent) -> Boolean = { false }, onKeyEvent: (KeyEvent) -> Boolean = { false }, menu: TrayMenuBuilder.() -> Unit? = null, content: @Composable DialogWindowScope.() -> Unit)
@Composable
fun ApplicationScope.TrayApp(icon: ImageVector, tint: Color? = null, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, state: TrayAppState? = null, windowSize: DpSize? = null, visibleOnStart: Boolean = false, enterTransition: EnterTransition = defaultTrayAppEnterTransition, exitTransition: ExitTransition = defaultTrayAppExitTransition, transparent: Boolean = true, windowsTitle: String = "", windowIcon: Painter? = null, undecorated: Boolean = true, resizable: Boolean = false, horizontalOffset: Int = 0, verticalOffset: Int = defaultVerticalOffset, onPreviewKeyEvent: (KeyEvent) -> Boolean = { false }, onKeyEvent: (KeyEvent) -> Boolean = { false }, menu: TrayMenuBuilder.() -> Unit? = null, content: @Composable DialogWindowScope.() -> Unit)
@Composable
fun ApplicationScope.TrayApp(windowsIcon: DrawableResource, macLinuxIcon: ImageVector, tint: Color? = null, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, state: TrayAppState? = null, windowSize: DpSize? = null, visibleOnStart: Boolean = false, enterTransition: EnterTransition = defaultTrayAppEnterTransition, exitTransition: ExitTransition = defaultTrayAppExitTransition, transparent: Boolean = true, windowsTitle: String = "", windowIcon: Painter? = null, undecorated: Boolean = true, resizable: Boolean = false, horizontalOffset: Int = 0, verticalOffset: Int = defaultVerticalOffset, onPreviewKeyEvent: (KeyEvent) -> Boolean = { false }, onKeyEvent: (KeyEvent) -> Boolean = { false }, menu: TrayMenuBuilder.() -> Unit? = null, content: @Composable DialogWindowScope.() -> Unit)

@Composable
fun ApplicationScope.TrayApp(windowsIcon: Painter, macLinuxIcon: ImageVector, tint: Color? = null, iconRenderProperties: IconRenderProperties = IconRenderProperties.forCurrentOperatingSystem(), tooltip: String, state: TrayAppState? = null, windowSize: DpSize? = null, visibleOnStart: Boolean = false, enterTransition: EnterTransition = defaultTrayAppEnterTransition, exitTransition: ExitTransition = defaultTrayAppExitTransition, transparent: Boolean = true, windowsTitle: String = "", windowIcon: Painter? = null, undecorated: Boolean = true, resizable: Boolean = false, horizontalOffset: Int = 0, verticalOffset: Int = defaultVerticalOffset, onPreviewKeyEvent: (KeyEvent) -> Boolean = { false }, onKeyEvent: (KeyEvent) -> Boolean = { false }, menu: TrayMenuBuilder.() -> Unit? = null, content: @Composable DialogWindowScope.() -> Unit)

Painter on Windows, ImageVector on macOS/Linux